aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/invoice/[hash]/+layout.server.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-01-18 19:44:27 -0800
committerAdam Soltys <[email protected]>2023-01-18 19:44:27 -0800
commit67c4af186fec0423664b18847921eb9696a1eeef (patch)
tree85e0fb00f3aa89fdde1cbb667bf801564bff7610 /src/routes/(app)/invoice/[hash]/+layout.server.js
parentb1ad12734eeafc36a07bd76f649a98ae9ade5723 (diff)
downloadcoinos-ui-67c4af186fec0423664b18847921eb9696a1eeef.tar.gz
coinos-ui-67c4af186fec0423664b18847921eb9696a1eeef.zip
pots
Diffstat (limited to 'src/routes/(app)/invoice/[hash]/+layout.server.js')
-rw-r--r--src/routes/(app)/invoice/[hash]/+layout.server.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/routes/(app)/invoice/[hash]/+layout.server.js b/src/routes/(app)/invoice/[hash]/+layout.server.js
new file mode 100644
index 00000000..61a479ab
--- /dev/null
+++ b/src/routes/(app)/invoice/[hash]/+layout.server.js
@@ -0,0 +1,19 @@
+import Qr from 'qrcode-base64';
+import { get } from '$lib/utils';
+import { redirect } from '@sveltejs/kit';
+
+export async function load({ depends, params, url }) {
+ depends('app:invoice');
+
+ let { hash } = params;
+ let invoice = await get(`/invoice?hash=${hash}`);
+ let { amount, received } = invoice;
+ amount = parseInt(amount);
+
+ let paid = (!amount && received) || (amount > 0 && received >= amount);
+ if (paid && !url.pathname.endsWith('paid')) throw redirect(307, `/invoice/${hash}/paid`);
+
+ let sm = Qr.drawImg(invoice.text, { size: 300 });
+
+ return { hash, invoice, sm, lg: sm };
+}